package com.nova.scenic.projectlibs.util;

import android.app.ActivityManager;
import android.content.Context;

/**
 * Created by scenic on 15/8/31.
 */
public class MemoryUtil {


    /*
    虚拟机打印log格式
    //D/dalvikvm: <GC_Reason> <Amount_freed>, <Heap_stats>,  <Pause_time>
    GC_CONCURRENT:   当我们应用程序的堆内存快要满的时候，系统会自动触发GC操作来释放内存。
    GC_FOR_MALLOC:   当我们的应用程序需要分配更多内存，可是现有内存已经不足的时候，系统会进行GC操作来释放内存。
    GC_HPROF_DUMP_HEAP:   当生成HPROF文件的时候，系统会进行GC操作，关于HPROF文件我们下面会讲到。
    GC_EXPLICIT:   这种情况就是我们刚才提到过的，主动通知系统去进行GC操作，比如调用System.gc()方法来通知系统。或者在DDMS中，通过工具按钮也是可以显式地告诉系统进行GC操作的。

    接下来第二部分Amount_freed，表示系统通过这次GC操作释放了多少内存

    然后Heap_stats中会显示当前内存的空闲比例以及使用情况（活动对象所占内存 / 当前程序总内存）。

     */
    /**
     * 获取设备的堆内存大小
     * @param context
     * @return
     */
    public int getHeapSize(Context context){
        ActivityManager manager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
        int heapSize = manager.getMemoryClass();
        return heapSize;
    }
}
